Микросервисы: что они из себя представляют и каковы их преимущества

Непрерывная поставка (CD) — это методика, предполагающая использование автоматизации для выпуска ПО короткими итерациями.

Попробуйте Compass бесплатно

Improve your developer experience, catalog all services, and increase software health.

Примерно до 2013 года компании, как правило, разрабатывали корпоративные приложения в виде единых модулей с большой базой кода. Это монолитная архитектура. По мере усложнения программного обеспечения и роста популярности облачных вычислений такой подход утратил былую практичность.

С появлением продуктов «ПО как услуга» (приложений, предоставляемых в облаке) компании смогли привлекать поставщиков, таких как Amazon Web Services, для быстрого создания новых серверов и добавления избыточности. Благодаря этому работа служб не прерывалась во время обновлений, а в мире наступила новая эпоха скорости и гибкости. Пользователи стали ожидать быстрых обновлений и улучшений, что побудило компании изменить процессы разработки.

Приложения стали разбиваться на небольшие независимые службы, или микрослужбы. Так, например, папка входящих сообщений может создаваться не как часть монолитной платформы электронной коммерции, а как отдельная микрослужба, которая будет выполнять нужные функции.

Одновременно с этим разработчики объединялись в небольшие специализированные группы, которые могли изменять и улучшать отдельные службы, не подвергая риску работоспособность всего приложения. Эти группы часто отвечали и за эксплуатацию написанного ими кода, реализуя модель DevOps. В свете этих нововведений руководители проектов стали разрабатывать новые методики, в числе которых Agile — метод, согласно которому проекты выполняются путем частого выпуска небольших релизов. 

Читайте дальше, чтобы узнать больше об устройстве приложений на основе микрослужб. Мы также расскажем, как Compass от Atlassian дает разработчикам возможность упростить управление этой архитектурной моделью и воспользоваться ее преимуществами.

Что такое микросервисы?

Микрослужба — это функционал, отвечающий за один элемент логики (за исключением предметно-ориентированных микрослужб, речь о которых пойдет далее). Из нескольких микрослужб собираются распределенные приложения, например Jira Software.

Существует три типа микрослужб:

  1. 1

    Domain microservices loosely couple services with related functionality. 

  2. 2

    Интеграционные микрослужбы обеспечивают взаимодействие между несвязанными приложениями. 

  3. 3

    Микрослужбы элементарных операций выполняют отдельные функции. 

Микрослужбы взаимодействуют друг с другом с помощью интерфейсов программирования приложений (API). Разработчики, отвечающие за отдельные службы, могут изучать внутреннюю работу других микрослужб, что является еще одним преимуществом перед монолитной архитектурой.

Архитектура на основе микрослужб дает множество преимуществ, но при этом усложняет систему. Именно поэтому компания Atlassian разработала решение Compass, которое упрощает управление архитектурой при масштабировании. Эта платформа для разработчиков объединяет все сведения о совместной работе команд и результатах разработки в одном центре с возможностью поиска.

Ключевые принципы микросервисов

Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components. 

Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.

These attributes make microservices-based distributed applications flexible and easy to maintain.

Преимущества микросервисной архитектуры

Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build. 

Some other benefits of microservices include:

Отказоустойчивость и локализация отказов

В монолитных архитектурах одна ошибка влияет на все приложение. Но микрослужбы независимы, поэтому отказ одной из них не затронет другие части приложения.

Agility

Разбиение приложений на более мелкие части ускоряет разработку. Команды способны быстрее создавать, тестировать и развертывать программное обеспечение.

Технологическое разнообразие

Микрослужбы позволяют разработчикам выбирать подходящие инструменты и технологии для работы. Это повышает эффективность и производительность.

Улучшенное техническое обслуживание

Возможность тестирования отдельных компонентов упрощает поиск и исправление ошибок, при этом не нужно отключать все приложение.

Отказоустойчивость и локализация отказов

В монолитных архитектурах одна ошибка влияет на все приложение. Но микрослужбы независимы, поэтому отказ одной из них не затронет другие части приложения.

Agility

Разбиение приложений на более мелкие части ускоряет разработку. Команды способны быстрее создавать, тестировать и развертывать программное обеспечение.

Технологическое разнообразие

Микрослужбы позволяют разработчикам выбирать подходящие инструменты и технологии для работы. Это повышает эффективность и производительность.

Улучшенное техническое обслуживание

Возможность тестирования отдельных компонентов упрощает поиск и исправление ошибок, при этом не нужно отключать все приложение.

Проблемы микросервисной архитектуры

Microservices-based architecture has many benefits, but it also comes with challenges. 

One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.

Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.

Для чего нужна архитектура микросервисов?

В работе крупных потребительских сайтов часто задействованы сотни или тысячи микрослужб. Микрослужбы особенно полезны в следующих сценариях и отраслях:

  • На сайтах электронной коммерции, например eBay, отдельные микрослужбы обеспечивают работу корзин для покупок, мобильных приложений и решений для обмена сообщениями.
  • Финансовые учреждения, например Банк Америки, используют микрослужбы для связи с внешними службами, а также для выполнения таких функций, как авторизация пользователей и отображение транзакций.
  • На платформах соцсетей, таких как Instagram и Facebook, микрослужбы отвечают за отображение новостных лент, сообщений, уведомлений и сетей друзей.

Рекомендации по управлению микросервисами

За прошедшие годы разработчики собрали десятки важных рекомендаций по созданию микрослужб. Ниже приведены лишь несколько примеров:

  • Принцип единой ответственности (SRP) предусматривает, что у каждого модуля или микрослужбы должна быть только одна функция. Непрерывная интеграция (CI) по SRP — это методика управления исходным кодом, которая автоматизирует проверку качества кода перед его слиянием с базой проекта. При этом отпадает необходимость в отдельном процессе контроля качества, поэтому эта рекомендация DevOps помогает ускорить разработку. После CI следует непрерывная поставка (CD), в рамках которой автоматические инструменты сборки подготавливают программное обеспечение к развертыванию.
  • Шлюзы API упрощают взаимодействие между микрослужбами, помогают управлять аутентификацией и авторизацией, а также повышают безопасность. 
  • Асинхронное взаимодействие между микрослужбами позволяет им сохранить автономность и уменьшает количество зависимостей, которые могут замедлить работу приложения. 
  • Управление версиями микрослужб крайне важно, когда разработчики вносят критические изменения, например удаляют целую операцию. Эта рекомендация облегчает переход и сводит к минимуму вероятность перебоев в обслуживании.  

Open DevOps на базе Jira Software позволяет командам без труда настроить автоматическую интеграцию инструментов Atlassian и партнеров, чтобы сосредоточиться на создании и эксплуатации программного обеспечения.

Улучшите управление архитектурой микросервисов с помощью Compass

Решение Compass от Atlassian — это платформа для разработчиков, объединяющая в одном центре распределенную архитектуру ПО и команды, ведущие совместную работу. Она дает наглядное представление обо всех компонентах и службах, над которыми работает команда. Она также включает каталог программных компонентов, помогающий разработчикам легко найти то, что им нужно.

Compass позволяет без труда управлять компонентами, отслеживать владение и выполнять мониторинг взаимосвязей. В этом инструменте также можно отслеживать изменения в реальном времени.

Интегрировать Compass в среду разработки очень просто благодаря настраиваемому пользовательскому интерфейсу и совместимости с внутренними и сторонними инструментами. Узнайте, как с помощью Compass можно управлять архитектурой микрослужб и объединить разрозненную информацию.

Микросервисы: часто задаваемые вопросы

What tools do people commonly use in microservices?

Компании часто используют такие инструменты контейнеризации, как Kubernetes и Docker. Кроме того, нередко применяются API-шлюзы между микрослужбами и их клиентами. Эти шлюзы выполняют такие функции управления трафиком API, как аутентификация, контроль доступа и балансирование нагрузки.

Чем микросервисная архитектура отличается от монолитной?

Монолиты — это большие базы кода, которые функционируют как единая система. При обновлении или отладке такой системы неизбежно возникает простой. Архитектуры микрослужб — это распределенные приложения с небольшими независимыми блоками функций. Разработчики могут обновлять, улучшать и отлаживать эти модули, не отключая все приложение. Это упрощает масштабирование и повышает скорость разработки.

Как микросервисы влияют на DevOps?

Те, кто понимает принципы DevOps, знают, что основой методологии DevOps являются непрерывная интеграция и непрерывная поставка (конвейер CI/CD в DevOps). Модульный характер микрослужб идеально соответствует этому подходу. Микрослужбы позволяют разработчикам быстро и часто создавать, тестировать и развертывать небольшие релизы.

Присоединяйтесь к сообществу Atlassian, где вас ждет больше статей и обсуждений на тему микрослужб.

Рекомендовано для вас

Сообщество Compass

Обучающее руководство: создание компонента

Начните работу с Compass бесплатно